package com.priox.sigar.client.dto;

import com.priox.sigar.enums.ActivoInactivo;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class AcreedorDTO extends AuditoriaDTO {


    private String acreedorId;

    @NotNull
    @NotEmpty
    private String razonSocial;

    private Date fecha_creacion;
    private String usuario;
    private ActivoInactivo estado;


    private List<SociedadDTO> sociedades= new ArrayList<SociedadDTO>();

    private List<AcreedorSociedadDTO> acreedorSociedad= new ArrayList<AcreedorSociedadDTO>();

    private String sociedadId;

    private boolean seleccionado;

    public boolean isSeleccionado() {
        return seleccionado;
    }

    public void setSeleccionado(boolean seleccionado) {
        this.seleccionado = seleccionado;
    }

    public String getAcreedorId() {
        return acreedorId;
    }

    public void setAcreedorId(String acreedorId) {
        this.acreedorId = acreedorId;
    }


    public String getRazonSocial() {
        return razonSocial;
    }

    public void setRazonSocial(String razonSocial) {
        this.razonSocial = razonSocial;
    }

    public ActivoInactivo getEstado() {
        return estado;
    }

    public void setEstado(ActivoInactivo estado) {
        this.estado = estado;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        AcreedorDTO that = (AcreedorDTO) o;

        if (acreedorId != null ? !acreedorId.equals(that.acreedorId) : that.acreedorId != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        return acreedorId != null ? acreedorId.hashCode() : 0;
    }



    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public List<SociedadDTO> getSociedades() {
        return sociedades;
    }

    public void setSociedades(List<SociedadDTO> sociedades) {
        this.sociedades = sociedades;
    }

    public String getSociedadId() {
        return sociedadId;
    }

    public void setSociedadId(String sociedadId) {
        this.sociedadId = sociedadId;
    }

    public List<AcreedorSociedadDTO> getAcreedorSociedad() {
        return acreedorSociedad;
    }

    public void setAcreedorSociedad(List<AcreedorSociedadDTO> acreedorSociedad) {
        this.acreedorSociedad = acreedorSociedad;
    }

    public Date getFecha_creacion() {
        return fecha_creacion;
    }

    public void setFecha_creacion(Date fecha_creacion) {
        this.fecha_creacion = fecha_creacion;
    }

    @Override
    public String toString() {
        return "AcreedorDTO{" +
                "acreedorId='" + acreedorId + '\'' +
                ", razonSocial='" + razonSocial + '\'' +
                ", fecha_creacion='" + fecha_creacion + '\'' +
                ", usuario='" + usuario + '\'' +
                ", estado=" + estado +
                ", sociedades=" + sociedades +
                ", acreedorSociedad=" + acreedorSociedad +
                ", sociedadId='" + sociedadId + '\'' +
                ", seleccionado=" + seleccionado +
                '}';
    }
}
